//地理位置相关服务

var showLocationInfo = function(position) {
	var geoMsg = "用户所在的地理位置信息是：\n";
	geoMsg += "timestamp属性为：" + position.timestamp + "\n";
	//获取Coordinates对象，该对象里包含了详细的地理位置信息
	var coords = position.coords;
	//遍历Coordinates对象的所有属性
	for(var prop in coords) {
		geoMsg += prop + "-->" + coords[prop] + "\n";	
	}
	alert(geoMsg);
}

var showErrorMessage = function(error) {
	//为不同错误代码定义错误提示
	var errMsg = {
		1:'用户拒绝了位置服务',
		2:'无法获取地址位置信息',
		3:'获取地理位置信息超时'
	};
	//弹出错误提示
	alert(errMsg[error.code]);
}

var showMap = function(position) {
	//获取浏览器提供的地理位置信息
	var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
	//设置创建Google地图的选项
	var myOptions = {
		zoom: 16,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP	
	};
	//获取页面上的map_canvas组件
	var mapDiv = document.getElementById("map_canvas");
	//创建Google地图，指定把地图显示到mapDiv组件上
	var map = new google.maps.Map(mapDiv, myOptions);
	//在地图上创建标记
	var marker = new google.maps.Marker({
		position: latlng,
		animation: google.maps.Animation.BOUNCE,
		map: map
	});
	//设定标注窗口，并指定该窗口中的注释文字
	var info = new google.maps.InfoWindow({
		content:"您在这里<br/>纬度："+   
            	position.coords.latitude+   
            	"<br/>经度："+position.coords.longitude
	});
	//打开标注窗口
	info.open(map, marker);
}

//获取地理位置信息及地图
function getLocation(type) {
	if (navigator.geolocation) {
		var geoHandler;
		var	errorHandler;
		if(type == "info") {
			geoHandler = showLocationInfo;
			errorHandler = showErrorMessage;
		}else if(type == "map"){
			geoHandler = showMap;
			errorHandler = showErrorMessage;
		}
		navigator.geolocation.getCurrentPosition(geoHandler, errorHandler,{
			// 指示浏览器获取高精度的位置，默认为false
			enableHighAcuracy: true,
			// 指定获取地理位置的超时时间，默认不限时，单位为毫秒
			//timeout: 5000,
			// 最长有效期，在重复获取地理位置时，此参数指定多久再次获取位置。
			//maximumAge: 3000
		});
	}else{
		alert("您的浏览器不支持Geolocation功能!");
	}
}
